home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 17 / AMIGAplus Sonderheft 17 (1999)(ICP)(DE)[!].iso / Rexx / DLG / XtruderCheck.rexx
OS/2 REXX Batch file  |  1997-07-21  |  2KB  |  98 lines

  1. /*
  2.  * $VER:XtruderCheck.rexx 1.0 (19.10.95)
  3.  */
  4.  
  5. /*
  6.  * Bugs ... none known 
  7.  *
  8.  * If you happen to find one anyway, then please notify me:
  9.  *
  10.  * Anders Wegge Jakobsen
  11.  *     2:238/28@fidonet
  12.  *   39:140/109@amiganet
  13.  *        wegge@daimi.aau.dk
  14.  *
  15.  * The same goes for ideas, feature requests etc...
  16.  */
  17.  
  18. /*
  19.  * Installation:
  20.  *
  21.  * Really simple, just modify DLGConfig:Batch/Upload2.batch to call
  22.  * this script:
  23.  *
  24.  * --Upload2.batch--
  25.  * .key UserName/a,PathFileName/a
  26.  * .bra "["
  27.  * .ket "]"
  28.  *
  29.  *  Rx Dska:TelePro/OtherRexx/XtruderCheck.rexx [UserName],[PathFileName]
  30.  * -Cut end--
  31.  */
  32.  
  33. /*
  34.  * Configuration: 
  35.  *
  36.  * Modify the following two constants to the values fitting your system.
  37.  */
  38.  
  39. SysOpName = 'Anders_Wegge_Jakobsen'
  40. XtruderPath = 'Work:Diverse/Xtruder/Xtruder'
  41.  
  42. /*
  43.  * No user-serviceable part beyond this point.
  44.  */
  45.  
  46. PARSE ARG Uploader ',' FileName .
  47.  
  48. OPTIONS RESULTS
  49.  
  50. Tries = 0
  51.  
  52. IF( ~SHOW( 'l', "rexxsupport.library" ) ) THEN 
  53.   IF( ~ADDLIB( "rexxsupport.library", 0, -30, 0 ) )THEN 
  54.     EXIT 10
  55.  
  56. DO WHILE ((Tries < 10 ) & ( ~SHOW('P','XTRUDER')))
  57.   ADDRESS COMMAND 'Run >NIL: <NIL: ' || XtruderPath
  58.   CALL DELAY(50)
  59.   Tries = Tries + 1
  60. END
  61.  
  62. ADDRESS 'XTRUDER'
  63.  
  64. ShortFile = RIGHT(FileName,LENGTH(FileName)-LASTPOS('/',FileName))
  65. RealName = STRIP(TRANSLATE(Uploader,' ','_'),'B',' ')
  66.  
  67. SAY 'Checking ' || ShortFile || ' for viruses...'
  68.  
  69. IF EXISTS(FileName) THEN DO
  70.   CheckFiles FileName
  71.  
  72.   NumVirus = RC
  73.  
  74.   IF NumVirus == 0 THEN SAY '.. checks out OK.'
  75.  
  76.   IF NumVirus ~= 0 THEN DO
  77.  
  78.     SAY '... '||NumVirus||' viruses found, informing sysop.'
  79.  
  80.     MsgName = 'T:XTR_Temp_' || PRAGMA('ID')
  81.  
  82.     CALL OPEN('Msg',MsgName,'WRITE')
  83.  
  84.     CALL WRITELN('Msg','The file ' || ShortFile || ', uploaded by ' || RealName)
  85.     CALL WRITELN('Msg','has been checked by Xtruder, which found ')
  86.     CALL WRITELN('Msg', NumVirus || ' viruses.')
  87.  
  88.     CALL CLOSE('Msg')
  89.  
  90.     ADDRESS COMMAND 'DLG:SendMsg -f XtruderCheck -s "'|| RealName || '" -b "' || MsgName || '" -n -q -r "' || SysOpName ||'"'
  91.     
  92.     CALL DELETE(MsgName)
  93.  
  94.   END
  95.  
  96. EXIT
  97.  
  98.